V1 Road map for scrapbox-userscript-std
scrapbox-userscript-stdのmajor version releaseでいれること
breaking changes
deno.jsoncで組み込み型定義を決める
<reference no-default-lib="true" />を一掃する
理由:
jsr.ioがsupportしていない
コードに組み込み型情報を入れると、deno check --remoteが不安定になる
cacheの状態によってエラーが出たり、browserで使わないはずのコードがbrowser環境扱いになってしまったり
jsr.ioにpublishする
documentを読みやすくする
etc.
option-tの導入
throwをなくす
明らかにバグな状況を除き、全てResult<T, E>で返す
panic!の用途と同じ考え方
今までResult<T, E>は自前で作っていたが、option-tにまかせて実装を完結にする
Result<T, E>の内部実装に立ち入らないようにする目的もある
もしResult<T, E>の中身を変えたとしても、unwrapOk()で正常値を取り出していれば、unwrapOk()などの関数の実装を変えるだけで済む
fetch()の例外を全てResult<T, E>で返す
NetoworkError
https://doc.deno.land/https://esm.sh/v135/ky@1.5.0/distribution/index.d.ts/~/HTTPError と大体同じpropsにする
HTTPError
response.okがfalseだったときに作る
TimeoutError
requestとreasonを入れる
https://developer.mozilla.org/ja/docs/Web/API/Window/fetch#例外
https://zenn.dev/junki555/articles/9ea9bd54aa1ddc
redirectで問題があるらしい?
esbuild_deno_loaderの実装で色々工夫してあった。それを真似すればいいだろう
いらない関数、動いていない関数を消す
scrapbox-userscript-websocketを統合する
分ける意味なかったと思う
あとAsync Generatorを使ったevent購読はやっぱり使いづらい
jsrへのpublish
https importを一切使えない
scrapbox-jp/typesやscrapbox-userscript-websocketなどもjsrにpublishしないといけなくなった
とりあえずscrapbox-jp/typesは@cosense/typesにpublishする
12:23:19 https://github.com/scrapbox-jp/types/pull/53
scrapbox-userscript-websocketはもともと統合する予定だったので、統合してしまう
#2024-07-28 17:38:00